﻿namespace UnityEngine
{
    using System;
    using System.Runtime.CompilerServices;

    public sealed class Time
    {
        public static int captureFramerate { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        private static float _deltaTime;
        public static float deltaTime
        {
            [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
            get
            {
                return _deltaTime;
            }
        }

        public static float fixedDeltaTime { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        private static float _fixedTime;
        public static float fixedTime
        {
            [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
            get
            {

                return _fixedTime;
            }
        }

        private static int _frameCount;
        public static int frameCount
        {
            [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
            get
            {
                return _frameCount;
            }
        }

        public static float maximumDeltaTime { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        private static float _realtimeSinceStartup;
        public static float realtimeSinceStartup
        {
            [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
            get
            {
                return _realtimeSinceStartup;
            }
        }

        private static int _renderedFrameCount;
        public static int renderedFrameCount
        {
            [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
            get
            {
                return _renderedFrameCount;
            }
        }

        private static float _smoothDeltaTime;
        public static float smoothDeltaTime
        {
            [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
            get
            {
                return _smoothDeltaTime;
            }
        }

        private static float _time;
        public static float time
        {
            [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
            get
            {
                return _time;
            }
        }

        public static float timeScale { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        private static float _timeSinceLevelLoad;
        public static float timeSinceLevelLoad
        {
            [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
            get
            {
                return _timeSinceLevelLoad;
            }
        }
    }
}

